package chapter04

import scala.collection.mutable.ArrayBuffer

/**
 * @program lu-scala01
 * @description: 可变数组
 * @author: zhanglu
 * @create: 2022-03-29 16:01:00
 */
object Lu02_ArrayBuffer {

  def main(args: Array[String]): Unit = {
    val arr1 = new ArrayBuffer[Int]
    val arr2 = ArrayBuffer(1, 2, 3)

    println(arr1)
    println(arr2)
    println(arr2.toString())
    println(arr2.mkString(","))

    println("*******************")
    arr1 :+ 1
    println(arr1.mkString(",")) //无效的添加元素

    println("**********向后追加元素*********")
    arr1 += 1
    arr1 += 2
    println(arr1.mkString(","))

    println("**********向前追加元素*********")
    0 +=: arr1
    println(arr1.mkString(","))

    println("**********向前后追加元素(建议使用)*********")
    arr1.append(3)  //向后添加
    arr1.prepend(-1)  //向前添加
    arr1.insert(5, 4) //索引位置添加
    println(arr1.mkString(","))

    println("**********删除元素*********")
    arr1.remove(5)  //删除索引位的元素
    arr1.remove(3, 2) //从索引3,包含索引3开始删除2个  -1,0,1
    arr1.prepend(1) //1,-1,0,1
    arr1.append(2)  //1,-1,0,1,2
    arr1.append(1)  //1,-1,0,1,2,1
    arr1 -= 1 //-1,0,1,2,1 删除值为1的元素，从末尾开始查找只删除的一个元素
    println(arr1.mkString(","))

    println("**********可变数组转换为不可变数组*********")
    val arr3 = ArrayBuffer(1, 2, 3)
    val arr4 = arr3.toArray
    println(arr3 + "-" + arr4)

    println("**********不可变数组转换为可变数组*********")
    val arr5 = arr4.toBuffer
    println(arr4 + "-" + arr5)


  }

}
